ggv_bin.cc
ggv_ovl.cc
globalsat_sport.cc
- googledir.cc
gpssim.cc
gtm.cc
gtrnctr.cc
ggv_bin.cc \
ggv_ovl.cc \
globalsat_sport.cc \
- googledir.cc \
gpssim.cc \
gtm.cc \
gtrnctr.cc \
--- /dev/null
+/*
+ Copyright (C) 2002 Robert Lipe, robertlipe+source@gpsbabel.org
+ Copyright (C) 2012 Guilhem Bonnefille, guilhem.bonnefille@gmail.com
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ */
+/*
+ * Parse the output of the following command:
+ * curl "http://maps.googleapis.com/maps/api/directions/xml?origin='Albi,%20france'&destination='toulouse,%20france'&sensor=false" > google-direction.xml
+ *
+ * For more information, check:
+ * https://developers.google.com/maps/documentation/directions/
+ */
+
+
+#include "defs.h"
+#include "xmlgeneric.h"
+#include <QXmlStreamAttributes>
+
+static QString encoded_points;
+static QString instructions;
+static short_handle desc_handle;
+
+#define MYNAME "googledir"
+
+static xg_callback goog_points, goog_poly_e;
+static xg_callback goog_instr;
+
+static
+xg_tag_mapping google_map[] = {
+ { goog_points, cb_cdata, "/DirectionsResponse/route/overview_polyline/points" },
+ { goog_poly_e, cb_end, "/DirectionsResponse/route/overview_polyline" },
+ { goog_points, cb_cdata, "/DirectionsResponse/route/leg/step/polyline/points" },
+ { goog_poly_e, cb_end, "/DirectionsResponse/route/leg/step" },
+ { goog_instr, cb_cdata, "/DirectionsResponse/route/leg/step/html_instructions" },
+ { nullptr, (xg_cb_type)0, nullptr }
+};
+
+void
+goog_points(xg_string args, const QXmlStreamAttributes*)
+{
+ encoded_points += args;
+}
+
+void
+goog_instr(xg_string args, const QXmlStreamAttributes*)
+{
+ instructions += args;
+}
+
+static int goog_step = 0;
+
+static long
+decode_goog64(const QByteArray& str, int& pos)
+{
+ long result = 0;
+ unsigned char shift = 0;
+
+ if (pos >= str.size()) {
+ return 0;
+ }
+
+ unsigned char c;
+ do {
+ c = str.at(pos++) - '?';
+ result |= (c & 31) << shift;
+ shift += 5;
+ } while (c & ~31);
+
+ if (result & 1) {
+ result = ~result;
+ }
+ return result/2;
+}
+
+static void
+goog_poly_e(xg_string args, const QXmlStreamAttributes*)
+{
+ long lat = 0;
+ long lon = 0;
+ const QByteArray qbstr = encoded_points.toUtf8();
+
+ auto* routehead = new route_head;
+ if (args == "overview_polyline") {
+ routehead->rte_name = "overview";
+ routehead->rte_desc = "Overview";
+ } else {
+ goog_step++;
+ routehead->rte_name = QString("step%1").arg(goog_step, 3, 10, QChar('0'));
+ if (instructions == nullptr) {
+ routehead->rte_desc = QString("Step %1").arg(goog_step);
+ } else {
+ utf_string utf(true, instructions);
+ char *s = strip_html(&utf);
+ routehead->rte_desc = s;
+ xfree(s);
+ instructions = QString();
+ }
+ }
+ route_add_head(routehead);
+
+ for (int qbpos=0; qbpos < qbstr.size();) {
+ lat += decode_goog64(qbstr, qbpos);
+ lon += decode_goog64(qbstr, qbpos);
+
+ {
+ auto* wpt_tmp = new Waypoint;
+ wpt_tmp->latitude = lat / 100000.0;
+ wpt_tmp->longitude = lon / 100000.0;
+ route_add_wpt(routehead, wpt_tmp);
+ }
+ }
+ encoded_points = QString();
+ instructions = QString();
+}
+
+static void
+google_rd_init(const QString& fname)
+{
+ desc_handle = mkshort_new_handle();
+ setshort_length(desc_handle, 12);
+
+ // leave default of UTF-8 unless xml file overrides with encoding=
+ xml_init(fname, google_map, nullptr);
+}
+
+static void
+google_read()
+{
+ xml_read();
+
+ encoded_points = QString();
+ instructions = QString();
+}
+
+static void
+google_rd_deinit()
+{
+ xml_deinit();
+ mkshort_del_handle(&desc_handle);
+}
+
+ff_vecs_t google_dir_vecs = {
+ ff_type_file,
+ { ff_cap_none, ff_cap_read, ff_cap_none},
+ google_rd_init,
+ nullptr,
+ google_rd_deinit,
+ nullptr,
+ google_read,
+ nullptr,
+ nullptr,
+ nullptr,
+ CET_CHARSET_UTF8, 1 /* CET-REVIEW */
+ , NULL_POS_OPS
+};
+++ /dev/null
-/*
- Copyright (C) 2002 Robert Lipe, robertlipe+source@gpsbabel.org
- Copyright (C) 2012 Guilhem Bonnefille, guilhem.bonnefille@gmail.com
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- */
-/*
- * Parse the output of the following command:
- * curl "http://maps.googleapis.com/maps/api/directions/xml?origin='Albi,%20france'&destination='toulouse,%20france'&sensor=false" > google-direction.xml
- *
- * For more information, check:
- * https://developers.google.com/maps/documentation/directions/
- */
-
-
-#include "defs.h"
-#include "xmlgeneric.h"
-#include <QXmlStreamAttributes>
-
-static QString encoded_points;
-static QString instructions;
-static short_handle desc_handle;
-
-#define MYNAME "googledir"
-
-static xg_callback goog_points, goog_poly_e;
-static xg_callback goog_instr;
-
-static
-xg_tag_mapping google_map[] = {
- { goog_points, cb_cdata, "/DirectionsResponse/route/overview_polyline/points" },
- { goog_poly_e, cb_end, "/DirectionsResponse/route/overview_polyline" },
- { goog_points, cb_cdata, "/DirectionsResponse/route/leg/step/polyline/points" },
- { goog_poly_e, cb_end, "/DirectionsResponse/route/leg/step" },
- { goog_instr, cb_cdata, "/DirectionsResponse/route/leg/step/html_instructions" },
- { nullptr, (xg_cb_type)0, nullptr }
-};
-
-void
-goog_points(xg_string args, const QXmlStreamAttributes*)
-{
- encoded_points += args;
-}
-
-void
-goog_instr(xg_string args, const QXmlStreamAttributes*)
-{
- instructions += args;
-}
-
-static int goog_step = 0;
-
-static long
-decode_goog64(const QByteArray& str, int& pos)
-{
- long result = 0;
- unsigned char shift = 0;
-
- if (pos >= str.size()) {
- return 0;
- }
-
- unsigned char c;
- do {
- c = str.at(pos++) - '?';
- result |= (c & 31) << shift;
- shift += 5;
- } while (c & ~31);
-
- if (result & 1) {
- result = ~result;
- }
- return result/2;
-}
-
-static void
-goog_poly_e(xg_string args, const QXmlStreamAttributes*)
-{
- long lat = 0;
- long lon = 0;
- const QByteArray qbstr = encoded_points.toUtf8();
-
- auto* routehead = new route_head;
- if (args == "overview_polyline") {
- routehead->rte_name = "overview";
- routehead->rte_desc = "Overview";
- } else {
- goog_step++;
- routehead->rte_name = QString("step%1").arg(goog_step, 3, 10, QChar('0'));
- if (instructions == nullptr) {
- routehead->rte_desc = QString("Step %1").arg(goog_step);
- } else {
- utf_string utf(true, instructions);
- char *s = strip_html(&utf);
- routehead->rte_desc = s;
- xfree(s);
- instructions = QString();
- }
- }
- route_add_head(routehead);
-
- for (int qbpos=0; qbpos < qbstr.size();) {
- lat += decode_goog64(qbstr, qbpos);
- lon += decode_goog64(qbstr, qbpos);
-
- {
- auto* wpt_tmp = new Waypoint;
- wpt_tmp->latitude = lat / 100000.0;
- wpt_tmp->longitude = lon / 100000.0;
- route_add_wpt(routehead, wpt_tmp);
- }
- }
- encoded_points = QString();
- instructions = QString();
-}
-
-static void
-google_rd_init(const QString& fname)
-{
- desc_handle = mkshort_new_handle();
- setshort_length(desc_handle, 12);
-
- // leave default of UTF-8 unless xml file overrides with encoding=
- xml_init(fname, google_map, nullptr);
-}
-
-static void
-google_read()
-{
- xml_read();
-
- encoded_points = QString();
- instructions = QString();
-}
-
-static void
-google_rd_deinit()
-{
- xml_deinit();
- mkshort_del_handle(&desc_handle);
-}
-
-ff_vecs_t google_dir_vecs = {
- ff_type_file,
- { ff_cap_none, ff_cap_read, ff_cap_none},
- google_rd_init,
- nullptr,
- google_rd_deinit,
- nullptr,
- google_read,
- nullptr,
- nullptr,
- nullptr,
- CET_CHARSET_UTF8, 1 /* CET-REVIEW */
- , NULL_POS_OPS
-};
<file>style/garmin301.style</file>
<file>style/garmin_g1000.style</file>
<file>style/garmin_poi.style</file>
- <file>style/geonet.style</file>
<file>style/gpsdrive.style</file>
<file>style/gpsdrivetrack.style</file>
<file>style/iblue747.style</file>
gtrnctr tcx/crs/hst/xml Garmin Training Center (.tcx/.crs/.hst/.xml)
geo loc Geocaching.com .loc
geojson json GeoJson
-geonet txt GEOnet Names Server (GNS)
dg-100 GlobalSat DG-100/BT-335 Download
dg-200 GlobalSat DG-200 Download
globalsat GlobalSat GH625XT GPS training watch
-googledir xml Google Directions XML
kml kml Google Earth (Keyhole) Markup Language
land_air_sea txt GPS Tracking Key Pro text
gtm gtm GPS TrackMaker
file gtrnctr tcx/crs/hst/xml Garmin Training Center (.tcx/.crs/.hst/.xml)
file geo loc Geocaching.com .loc
file geojson json GeoJson
-file geonet txt GEOnet Names Server (GNS)
internal dg-100-bin GlobalSat DG-100/BT-335 Binary File
serial dg-100 GlobalSat DG-100/BT-335 Download
internal dg-200-bin GlobalSat DG-200 Binary File
serial dg-200 GlobalSat DG-200 Download
serial globalsat GlobalSat GH625XT GPS training watch
-file googledir xml Google Directions XML
file kml kml Google Earth (Keyhole) Markup Language
file land_air_sea txt GPS Tracking Key Pro text
file gtm gtm GPS TrackMaker
file r-rw-- gtrnctr tcx/crs/hst/xml Garmin Training Center (.tcx/.crs/.hst/.xml)
file rw---- geo loc Geocaching.com .loc
file rwrwrw geojson json GeoJson
-file rw---- geonet txt GEOnet Names Server (GNS)
internal r-r--- dg-100-bin GlobalSat DG-100/BT-335 Binary File
serial r-r--- dg-100 GlobalSat DG-100/BT-335 Download
internal r-r--- dg-200-bin GlobalSat DG-200 Binary File
serial r-r--- dg-200 GlobalSat DG-200 Download
serial --r--- globalsat GlobalSat GH625XT GPS training watch
-file --r--- googledir xml Google Directions XML
file rwrwrw kml kml Google Earth (Keyhole) Markup Language
file --rw-- land_air_sea txt GPS Tracking Key Pro text
file rwrwrw gtm gtm GPS TrackMaker
https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geojson.html
option geojson compact Compact Output. Default is off. boolean https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geojson.html#fmt_geojson_o_compact
-file rw---- geonet txt GEOnet Names Server (GNS) xcsv
- https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html
-option geonet snlen Max synthesized shortname length integer 1 https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_snlen
-
-option geonet snwhite Allow whitespace synth. shortnames boolean https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_snwhite
-
-option geonet snupper UPPERCASE synth. shortnames boolean https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_snupper
-
-option geonet snunique Make synth. shortnames unique boolean https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_snunique
-
-option geonet urlbase Basename prepended to URL on output string https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_urlbase
-
-option geonet prefer_shortnames Use shortname instead of description boolean https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_prefer_shortnames
-
-option geonet datum GPS datum (def. WGS 84) string https://www.gpsbabel.org/WEB_DOC_DIR/fmt_geonet.html#fmt_geonet_o_datum
-
internal r-r--- dg-100-bin GlobalSat DG-100/BT-335 Binary File dg-100-bin
https://www.gpsbabel.org/WEB_DOC_DIR/fmt_dg-100-bin.html
option dg-100-bin erase Erase device data after download boolean 0 https://www.gpsbabel.org/WEB_DOC_DIR/fmt_dg-100-bin.html#fmt_dg-100-bin_o_erase
option globalsat timezone Time zone ID string https://www.gpsbabel.org/WEB_DOC_DIR/fmt_globalsat.html#fmt_globalsat_o_timezone
-file --r--- googledir xml Google Directions XML googledir
- https://www.gpsbabel.org/WEB_DOC_DIR/fmt_googledir.html
file rwrwrw kml kml Google Earth (Keyhole) Markup Language kml
https://www.gpsbabel.org/WEB_DOC_DIR/fmt_kml.html
option kml deficon Default icon name string https://www.gpsbabel.org/WEB_DOC_DIR/fmt_kml.html#fmt_kml_o_deficon
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<gpx
- version="1.0"
- creator="GPSBabel - https://www.gpsbabel.org"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://www.topografix.com/GPX/1/0"
- xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
- <time>2005-08-30T20:58:28Z</time>
-<bounds minlat="50.500000000" minlon="12.133333300" maxlat="51.133333300" maxlon="13.716666700"/>
-<wpt lat="51.016666700" lon="13.716666700">
- <name>PLAUEN</name>
- <cmt>Plauen</cmt>
- <desc>Plauen</desc>
-</wpt>
-<wpt lat="50.500000000" lon="12.133333300">
- <name>PLAUEN</name>
- <cmt>Plauen</cmt>
- <desc>Plauen</desc>
-</wpt>
-<wpt lat="50.500000000" lon="12.133333300">
- <name>PLAUEN STADTKREIS</name>
- <cmt>Stadtkreis Plauen</cmt>
- <desc>Stadtkreis Plauen</desc>
-</wpt>
-<wpt lat="50.533333300" lon="12.133333300">
- <name>PLAUENERSTADTWALD</name>
- <cmt>Plauener Stadtwald</cmt>
- <desc>Plauener Stadtwald</desc>
-</wpt>
-<wpt lat="51.133333300" lon="13.050000000">
- <name>ZSCHOPAU</name>
- <cmt>Zschopau</cmt>
- <desc>Zschopau</desc>
-</wpt>
-<wpt lat="50.750000000" lon="13.066666700">
- <name>ZSCHOPAU</name>
- <cmt>Zschopau</cmt>
- <desc>Zschopau</desc>
-</wpt>
-<wpt lat="50.866666700" lon="12.416666700">
- <name>ZSCHOPEL</name>
- <cmt>Zschöpel</cmt>
- <desc>Zschöpel</desc>
-</wpt>
-<wpt lat="50.733333300" lon="13.066666700">
- <name>ZSCHOPENBERG</name>
- <cmt>Zschopen-Berg</cmt>
- <desc>Zschopen-Berg</desc>
-</wpt>
-<wpt lat="50.766666700" lon="13.100000000">
- <name>ZSCHOPENTHAL</name>
- <cmt>Zschopenthal</cmt>
- <desc>Zschopenthal</desc>
-</wpt>
-</gpx>
+++ /dev/null
-RC UFI UNI LAT LONG DMS_LAT DMS_LONG UTM JOG FC DSG PC CC1 ADM1 ADM2 DIM CC2 NT LC SHORT_FORM GENERIC SORT_NAME FULL_NAME FULL_NAME_ND MODIFY_DATE\r
-1 -1843626 -2549662 51.0166667 13.7166667 510100 134300 VS05 NM33-01 P PPLX GM 13 N PLAUEN Plauen Plauen 1994-01-08\r
-1 -1843625 -2549661 50.5 12.1333333 503000 120800 TR99 NM33-04 P PPL 3 GM 13 N PLAUEN Plauen Plauen 2002-05-02\r
-1 -1843628 -2549664 50.5 12.1333333 503000 120800 TR99 NM33-04 A ADM3 GM 13 Chemnitz V PLAUEN STADTKREIS Stadtkreis Plauen Stadtkreis Plauen 1998-04-28\r
-1 -1843629 -2549666 50.5333333 12.1333333 503200 120800 TS90 NM33-04 V FRST GM 13 N PLAUENERSTADTWALD Plauener Stadtwald Plauener Stadtwald 1998-05-12\r
-1 -1893314 -2603706 51.1333333 13.05 510800 130300 US66 NM33-01 H STM GM 13 N ZSCHOPAU Zschopau Zschopau 1994-01-08\r
-1 -1893313 -2603705 50.75 13.0666667 504500 130400 US62 NM33-04 P PPL 4 GM 13 N ZSCHOPAU Zschopau Zschopau 2002-05-02\r
-1 -1893316 -2603708 50.8666667 12.4166667 505200 122500 US13 NM33-04 P PPL GM 15 N ZSCHOPEL Zschöpel Zschopel 1998-05-15\r
-1 -1893317 -2603709 50.7333333 13.0666667 504400 130400 US62 NM33-04 T HLL GM 13 N ZSCHOPENBERG Zschopen-Berg Zschopen-Berg 1994-01-08\r
-1 -1893318 -2603710 50.7666667 13.1 504600 130600 US62 NM33-04 P PPL GM 13 N ZSCHOPENTHAL Zschopenthal Zschopenthal 1994-01-08\r
nuke_placer (0/1) Omit Placer name
geojson GeoJson
compact (0/1) Compact Output. Default is off.
- geonet GEOnet Names Server (GNS)
- snlen Max synthesized shortname length
- snwhite (0/1) Allow whitespace synth. shortnames
- snupper (0/1) UPPERCASE synth. shortnames
- snunique (0/1) Make synth. shortnames unique
- urlbase Basename prepended to URL on output
- prefer_shortnames (0/1) Use shortname instead of description
- datum GPS datum (def. WGS 84)
dg-100 GlobalSat DG-100/BT-335 Download
erase (0/1) Erase device data after download
erase_only (0/1) Only erase device data, do not download anything
dump-file Dump raw data to this file
input-is-dump-file (0/1) Dump raw data to this file
timezone Time zone ID
- googledir Google Directions XML
kml Google Earth (Keyhole) Markup Language
deficon Default icon name
lines (0/1) Export linestrings for tracks and routes
+++ /dev/null
-# gpsbabel XCSV style file
-#
-# Format: GEOnet Names Server (GNS) (http://earth-info.nga.mil/gns/html/cntry_files.html)
-# Author: Olaf Klein
-# Date: 08/20/2002
-#
-
-DESCRIPTION GEOnet Names Server (GNS)
-EXTENSION txt
-
-#
-# FILE LAYOUT DEFINITIIONS:
-#
-
-FIELD_DELIMITER TAB
-RECORD_DELIMITER CRNEWLINE
-BADCHARS TAB
-ENCODING UTF-8
-
-PROLOGUE RC UFI UNI LAT LONG DMS_LAT DMS_LONG UTM JOG FC DSG PC CC1 ADM1 ADM2 DIM CC2 NT LC SHORT_FORM GENERIC SORT_NAME FULL_NAME FULL_NAME_ND MODIFY_DATE
-
-#
-# INDIVIDUAL DATA FIELDS, IN ORDER OF APPEARANCE:
-#
-IFIELD IGNORE, "", "%s" # RC ( http://earth-info.nga.mil/gns/html/gis_contryfiles.html )
-IFIELD IGNORE, "", "%s" # UFI
-IFIELD IGNORE, "", "%s" # UNI
-IFIELD LAT_DECIMAL, "", "%03.7f" # LAT
-IFIELD LON_DECIMAL, "", "%03.7f" # LONG
-IFIELD IGNORE, "", "%s" # DMS_LAT
-IFIELD IGNORE, "", "%s" # DMS_LONG
-IFIELD IGNORE, "", "%s" # UTM
-IFIELD IGNORE, "", "%s" # JOG
-IFIELD IGNORE, "", "%s" # FC
-IFIELD IGNORE, "", "%s" # DSG
-IFIELD IGNORE, "", "%s" # PC
-IFIELD IGNORE, "", "%s" # CC1
-IFIELD IGNORE, "", "%s" # ADM1
-IFIELD IGNORE, "", "%s" # ADM2
-IFIELD IGNORE, "", "%s" # DIM
-IFIELD IGNORE, "", "%s" # CC2
-IFIELD IGNORE, "", "%s" # NT
-IFIELD IGNORE, "", "%s" # LC
-IFIELD IGNORE, "", "%s" # SHORT_FORM
-IFIELD IGNORE, "", "%s" # GENERIC
-IFIELD SHORTNAME, "", "%s" # SHORT_NAME
-IFIELD DESCRIPTION, "", "%s" # FULL_NAME
-IFIELD IGNORE, "", "%s" # FULL_NAME_ND
-IFIELD IGNORE, "", "%s" # MOD_DATE
+++ /dev/null
-#
-# Quick tests for Google Direction XML format
-# Note: Reference files are from GPSBabel's own output.
-#
-gpsbabel -i googledir -f ${REFERENCE}/google-direction.xml -o gpx -F ${TMPDIR}/google-direction.gpx
-compare ${REFERENCE}/google-direction.gpx ${TMPDIR}/google-direction.gpx
extern ff_vecs_t wbt_fvecs;
//extern ff_vecs_t wbt_fvecs;
extern ff_vecs_t vcf_vecs;
-extern ff_vecs_t google_dir_vecs;
extern ff_vecs_t tomtom_vecs;
extern ff_vecs_t bcr_vecs;
extern ff_vecs_t ignr_vecs;
LegacyFormat wbt_ffmt {wbt_fvecs};
//LegacyFormat wbt_ffmt {wbt_fvecs};
LegacyFormat vcf_fmt {vcf_vecs};
- LegacyFormat google_dir_fmt {google_dir_vecs};
LegacyFormat tomtom_fmt {tomtom_vecs};
TefXMLFormat tef_xml_fmt;
LegacyFormat bcr_fmt {bcr_vecs};
"vcf",
nullptr,
},
- {
- &google_dir_fmt,
- "googledir",
- "Google Directions XML",
- "xml",
- nullptr,
- },
{
&tomtom_fmt,
"tomtom",
+++ /dev/null
-
-
-
- <para> This format is designed to read the XML emitted when you
-use the <ulink url="https://developers.google.com/maps/documentation/directions/">
- Google Directions API</ulink>.
-</para>
-<para>
-If you use a Unix-compatible
-operating system, this shell script might be useful:
-</para>
-<programlisting format="linespecific"><![CDATA[
-#!/bin/sh
-FROM="233 S. Upper Wacker Dr, Chicago, IL"
-TO="1060 W. Addison St, Chicago, IL"
-URL="http://maps.googleapis.com/maps/api/directions/xml"
-wget -O - "$URL?origin=$FROM&destination=$TO&sensor=false" \
-2>/dev/null >google_map.xml
-gpsbabel -i googledir -f google_map.xml -o gpx -F google_map.gpx
-]]></programlisting>
-